/**
 * jims
 */
package com.jims.master.modules.sync.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import com.jims.master.common.utils.excel.annotation.ExcelField;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 价表Entity
 * @author CTQ
 * @version 2017-02-22
 */

public class PriceList extends DataEntity<PriceList> {

	private static final long serialVersionUID = 1L;
    @ExcelField(title = "项目分类",align = 2,sort = 1)
	private String itemClass;		// 项目分类
    @ExcelField(title = "项目代码",align = 2,sort = 2)
	private String itemCode;		// 项目代码
    @ExcelField(title = "项目名称",align = 2,sort = 3)
	private String itemName;		// 项目名称
    @ExcelField(title = "项目规格",align = 2,sort = 4)
	private String itemSpec;		// 项目规格
    @ExcelField(title = "单位",align = 2,sort = 5)
	private String units;		//
    private Double price;		// 价格
    @ExcelField(title = "价格",align = 2,sort = 6)
    private String priceExport;		// 价格
    private Double preferPrice;		// 优惠价格
    @ExcelField(title = "门诊费用分类",align = 2,sort = 7)
	private String classOnRcpt;		// 门诊费用分类
	@ExcelField(title = "住院费用分类", align = 2, sort = 7)
	private String classOnInp;        // 住院费用分类
    @ExcelField(title = "核算项目分类",align = 2,sort = 8)
	private String classOnReckoning;		// 核算项目分类
    @ExcelField(title = "id",align = 2,sort = 14)
    private String medicalInsuranceType; //医保类型
    @ExcelField(title = "会计科目",align = 2,sort = 9)
	private String subjCode;		// 会计科目
	@ExcelField(title = "病案首页",align = 2,sort = 10)
	private String classOnMr;		// 病案首页分类
    @ExcelField(title = "开始时间",align = 2,sort = 11)
	private String startDateExport;		// 开始时间
	private Date startDate;		// 开始时间
    @ExcelField(title = "停止时间",align = 2,sort = 12)
	private String stopDateExport;		// 停止时间
	private Date stopDate;		// 停止时间
    @ExcelField(title = "拼音码",align = 2,sort = 13)
	private String inputCode;		// 拼音码
	private String mark;//是否生成诊疗项目

	private String deptName;
	private String deptId;
	private String medicalItemCode;  //医保编码
	private String medicalItemSpec;  //医保规格

	public String getMedicalItemSpec() {
		return medicalItemSpec;
	}

	public void setMedicalItemSpec(String medicalItemSpec) {
		this.medicalItemSpec = medicalItemSpec;
	}

	public String getMedicalItemCode() {
		return medicalItemCode;
	}

	public void setMedicalItemCode(String medicalItemCode) {
		this.medicalItemCode = medicalItemCode;
	}

	public String getDeptId() {
		return deptId;
	}

	public void setDeptId(String deptId) {
		this.deptId = deptId;
	}

	public String getDeptName() {
		return deptName;
	}

	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}

	public String getPriceExport() {
        return priceExport;
    }

    public void setPriceExport(String priceExport) {
        this.priceExport = priceExport;
    }

    public String getStopDateExport() {
        return stopDateExport;
    }

    public void setStopDateExport(String stopDateExport) {
        this.stopDateExport = stopDateExport;
    }

    public String getStartDateExport() {
        return startDateExport;
    }

    public void setStartDateExport(String startDateExport) {
        this.startDateExport = startDateExport;
    }

    //扩展字段
    private int amount; //数量
	private String label;
	private double coefficient; //收费比例
	public PriceList() {
		super();
	}

	public PriceList(String id){
		super(id);
	}

	public String getMedicalInsuranceType() {
		return medicalInsuranceType;
	}

	public void setMedicalInsuranceType(String medicalInsuranceType) {
		this.medicalInsuranceType = medicalInsuranceType;
	}

	@Length(min=1, max=10, message="项目分类长度必须介于 1 和 10 之间")
	public String getItemClass() {
		return itemClass;
	}

	public void setItemClass(String itemClass) {
		this.itemClass = itemClass;
	}

	@Length(min=1, max=50, message="项目代码长度必须介于 1 和 50 之间")
	public String getItemCode() {
		return itemCode;
	}

	public void setItemCode(String itemCode) {
		this.itemCode = itemCode;
	}

	@Length(min=1, max=200, message="项目名称长度必须介于 1 和 200 之间")
	public String getItemName() {
		return itemName;
	}

	public void setItemName(String itemName) {
		this.itemName = itemName;
	}

	@Length(min=1, max=100, message="项目规格长度必须介于 1 和 100 之间")
	public String getItemSpec() {
		return itemSpec;
	}

	public void setItemSpec(String itemSpec) {
		this.itemSpec = itemSpec;
	}

	@Length(min=1, max=50, message="单位长度必须介于 1 和 50 之间")
	public String getUnits() {
		return units;
	}

	public void setUnits(String units) {
		this.units = units;
	}

	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}

	public Double getPreferPrice() {
		return preferPrice;
	}

	public void setPreferPrice(Double preferPrice) {
		this.preferPrice = preferPrice;
	}

	@Length(min=1, max=10, message="门诊费用分类长度必须介于 1 和 10 之间")
	public String getClassOnRcpt() {
		return classOnRcpt;
	}

	public void setClassOnRcpt(String classOnRcpt) {
		this.classOnRcpt = classOnRcpt;
	}

	@Length(min = 1, max = 10, message = "住院费用分类长度必须介于 1 和 10 之间")
	public String getClassOnInp() {
		return classOnInp;
	}

	public void setClassOnInp(String classOnInp) {
		this.classOnInp = classOnInp;
	}

	@Length(min=1, max=10, message="核算项目分类长度必须介于 1 和 10 之间")
	public String getClassOnReckoning() {
		return classOnReckoning;
	}

	public void setClassOnReckoning(String classOnReckoning) {
		this.classOnReckoning = classOnReckoning;
	}

	@Length(min=1, max=10, message="会计科目长度必须介于 1 和 10 之间")
	public String getSubjCode() {
		return subjCode;
	}

	public void setSubjCode(String subjCode) {
		this.subjCode = subjCode;
	}

	@Length(min=1, max=10, message="病案首页分类长度必须介于 1 和 10 之间")
	public String getClassOnMr() {
		return classOnMr;
	}

	public void setClassOnMr(String classOnMr) {
		this.classOnMr = classOnMr;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="开始时间不能为空")
	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getStopDate() {
		return stopDate;
	}

	public void setStopDate(Date stopDate) {
		this.stopDate = stopDate;
	}

	@Length(min=0, max=50, message="拼音码长度必须介于 0 和 50 之间")
	public String getInputCode() {
		return inputCode;
	}

	public void setInputCode(String inputCode) {
		this.inputCode = inputCode;
	}


	public String getMark() {
		return mark;
	}

	public void setMark(String mark) {
		this.mark = mark;
	}

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

	public String getLabel() {
		return label;
	}

	public void setLabel(String label) {
		this.label = label;
	}

    public double getCoefficient() {
        return coefficient;
    }

    public void setCoefficient(double coefficient) {
        this.coefficient = coefficient;
    }
}